

// Array数组中可以包含任意数据类型的元素，可以通过索引来访问每个元素
var arr = [1,2,3.14,'Hello',null,true];
//可以通过length属性取得数组的长度
var len = arr.length;

console.log(arr);
console.log(len);

//直接给Array的length赋值 会导致Array数组大小发生变化
var arr2 = [1,2,3];
console.log(arr2);
console.log(arr2.length);

arr2.length = 6;
console.log(arr2);
console.log(arr2.length);
console.log(arr2[0]);
console.log(arr2[1]);
console.log(arr2[2]);
console.log(arr2[3]);
console.log(arr2[4]);
console.log(arr2[5]);

arr2.length = 2;
console.log(arr2);
console.log(arr2.length);

//可以通过索引把对应的元素修改为新的值
var arr = ['A','B','C'];
console.log(arr);
console.log(arr[0]);

arr[0] = 'D';
console.log(arr);

arr[1] = 99;
console.log(arr);

//如果索引超出了数组本身的长度，中间会自动填充 undefined元素
var arr = [1,2,3];
console.log(arr);
arr[5] = 'Haha';
console.log(arr);

//跟String类似，Array数组也可以通过indexOf()来搜索一个指定的元素的位置
var arr = [10,20,'xyz','haifeng'];
console.log(arr.indexOf('haifeng'));

//注意“20”和20是两种数据类型，是不同的元素
console.log(arr.indexOf('20'));
console.log(arr.indexOf(20));

console.log("slice:::");
//slice() 对应String的 substring() 从Array数组中截取部分元素，返回的是一个新的Array数组
var arr = ['A','B','C','D','E','F','G'];
//从索引0开始，到索引3结束，但不包括索引3
console.log(arr.slice(0,3));
//从索引4到结束
console.log(arr.slice(4));

//如果不给slice()传值，会复制出一个Array;
var arrCopy = arr.slice();
console.log(arrCopy);

//push() 是在Array数组的末尾增加若干元素 ， pop()是把Array数组的最后一个元素删除
var arr = [1,2];
arr.push('A','B');
console.log(arr);
arr.pop();
console.log(arr);

//unshift() 是在Array数组的头部添加若干元素， shift()是把Array数组第一个元素删除
var arr = [1,2];
arr.unshift('A','B');
console.log(arr);
arr.shift();
console.log(arr);

//sort() 对当前Array数组中的元素进行排序
var arr = ['B','C','A'];
console.log(arr);
arr.sort();
console.log(arr);
arr.reverse();
console.log(arr);

//reverse() 把整个Array数组中的元素调个个，也就是反转整个数组
var arr = ['one','two','three'];
console.log(arr);
arr.reverse();
console.log(arr);


//concat()方法是把当前的Array数组和另一个Array数组连起来，得到一个新的数组
var arr1 = [1,2,3];
var arr2 = ['A','B','C'];
var arrAdd = arr1.concat(arr2);
console.log('arr1='+arr1);
console.log('arr2='+arr2)
console.log('arr1.concat(arr2) = ' + arrAdd);